package com.vita.core.task;

import com.vita.core.put.InOut;
import com.vita.core.put.Input;
import com.vita.core.value.Getter;

import java.util.List;
import java.util.Objects;

/**
 * Task        任务（主要包含任务计划、任务步骤）
 * TaskExecute 任务执行器（实现Task中的每一个步骤）
 * TaskManager 任务管理器（入口）
 */
public abstract class TaskManager{

    /**
     * 添加任务
     */
    public static Task addTask(Task task){ return task;}

    /**
     * 多输入输出操作符
     */
    public static <I> Input<I> input(I i){
        Objects.requireNonNull(i, "入参为NULL");
        return new Input<>(i);
    }

    public static <I> Input<I> input(List<I> i){
        Objects.requireNonNull(i, "入参为NULL");
        return new Input<>(i);
    }

    /**
     * 单输入输出操作符
     */
    public static <I,O> InOut<I,O> inOut(I i,O o){
        Objects.requireNonNull(i, "入参为NULL");
        return new InOut<I,O>(i,o);
    }


}
